home *** CD-ROM | disk | FTP | other *** search
/ Biodiversity of Illinois 2: Woodland Habitats / Biodiversity of Illinois 2 - Woodland Habitats.iso / mac / casts / PDFxtraBehaviors.cst / 00034_Script_PDF_GoToPage from field < prev    next >
Text File  |  2006-07-11  |  3KB  |  97 lines

  1. -- Go to Page
  2.  
  3. Property pEvent, pSprite, pMemberName, pAlertFlag
  4.  
  5. on doGo me
  6.   set pg = integer(the text of member pMemberName)
  7.   if (pg <1) then exit
  8.   set err = PDF_GotoPage(sprite pSprite, pg)
  9.   if PDF_status(sprite pSprite) then alert "PDF Behavior Error"&RETURN&PDF_error(sprite pSprite)
  10. end doGo
  11.  
  12. on mouseUp me
  13.   if (pEvent = #mouseUp) then doGo(me)
  14. end mouseUp
  15.  
  16. on mouseDown me
  17.   if (pEvent = #mouseDown) then doGo(me)
  18. end mouseDown
  19.  
  20. -- standard behavior stuff --
  21. on getPropertyDescriptionList me
  22.   set defaultValues = GetDefaultValues (me)
  23.   
  24.   set pdfSpriteList = getProp (defaultValues, #spriteList)
  25.   set defSprite     = getProp (defaultValues, #defaultSprite)
  26.   if (defSprite=0) then 
  27.     if the ticks - pAlertFlag > 10 then
  28.       alert "Please create a sprite of type PDF first."
  29.     end if
  30.     set pAlertFlag = the ticks -- The ticks when the user clicked "OK"
  31.     
  32.     exit
  33.   end if
  34.   set defFieldMember = FindFirstMember(#field)
  35.   if (string(defFieldMember) contains "member 0") then 
  36.     alert "You need at least one member of type #field to use this behavior."
  37.     exit
  38.   end if
  39.   set p_list = [#pEvent: [ #comment: "Event", #format:#symbol, #range:[#mouseUp, #mouseDown], #default:#mouseUp], #pSprite: [ #comment: "PDF Sprite is in channel:", #format:#symbol, #range:pdfSpriteList, #default:defSprite], #pMemberName: [#comment: "Page number is in field:", #format:#field, #default:defFieldMember]]
  40.   return p_list
  41. end
  42.  
  43. on getBehaviorDescription
  44.   return "Instruct PDF sprite to go to the page number specified in a Director field." &RETURN& "Free to use and abuse. (c)1999, Integration New Media, Inc."  &RETURN& "Thanks to James Newton for his suggestions"
  45. end
  46.  
  47. -- utils --
  48. on GetDefaultValues me
  49.   if the currentSpriteNum then
  50.     set spriteList = GetSpriteList (me #PDF)
  51.     if count (spriteList) then
  52.       set defaultSprite = getAt (spriteList, 1)
  53.     else
  54.       set defaultSprite = 0
  55.     end if
  56.     
  57.     return [#spriteList: spriteList, #defaultSprite: defaultSprite]
  58.     
  59.   else -- the currentSpriteNum = 0
  60.     -- Director is merely recompiling this script: return dummy values
  61.     return [#spriteList: [1], #defaultSprite: 1]
  62.   end if
  63. end 
  64.  
  65.  
  66. on GetSpriteList me, memberType
  67.   -- return list of sprites of type memberType in current frame
  68.   global version
  69.   if (char 1 of version = 6) then
  70.     set maxSprite = 120
  71.   else
  72.     set maxSprite = the lastChannel
  73.   end if
  74.   
  75.   set aList=[]
  76.   
  77.   repeat with i = 1 to maxSprite
  78.     set spriteMember = the member of sprite i
  79.     -- if (string(m) contains "member 0") then next repeat -- unnecessary
  80.     if (the type of spriteMember = memberType) then -- (JN) Line break
  81.       append (aList, i)
  82.     end if
  83.   end repeat
  84.   
  85.   return aList
  86. end GetSpriteList
  87.  
  88. on FindFirstMember t
  89.   -- Find first member of type t
  90.   repeat with c = 1 to the number of castLibs
  91.     repeat with i = 1 to the number of members of castLib c
  92.       set m = member i of castLib c
  93.       if (the type of m = t) then return m
  94.     end repeat
  95.   end repeat
  96.   return 0
  97. end FindFirstMember